home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
AMIGA
/
AMICUS
/
AMICUS12.ADF
/
AmigaBBS
/
menus
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1986-08-05
|
9KB
|
189 lines
ON BREAK GOSUB Teflon
Main:
GOSUB Menus
CHAIN "df1:BBS1",10,ALL
Modem:
IF rings=0 THEN OtherModem
x=FRE(0):FOR j= 1 TO LEN(a$):p$=MID$(a$,j,1)
PRINT p$;:PRINT#1,p$;:NEXT j:a$="":p$="":RETURN
OtherModem:
x=FRE(0):FOR j= 1 TO LEN(a$):p$=MID$(a$,j,1)
PRINT p$;:NEXT j:a$="":p$="":RETURN
Answers:
telly=0:t$="":t=0:i$="":ch$="":alter=0:IF rings=0 THEN SomeAnswers
WHILE 1 AND alter<1
WHILE LOC(1)<>0
ch$=INPUT$(1,1)
equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs)
i$=i$+ch$:equivs=0
telly=telly+1:IF telly=78 THEN ch$=r$:telly=0
IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2):telly=telly-2
IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN alter=3:telly=0
a$=ch$:GOSUB Modem:ch$="":connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN okp=0:RETURN
WEND
ch$=INKEY$:i$=i$+ch$
a$=ch$:GOSUB Modem
IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN telly=0:GOTO MoreAnswers
IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
ch$="":connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN okp=0:RETURN
WEND
IF i$<>"" THEN MoreAnswers
SomeAnswers:
ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem
IF ch$= CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN MoreAnswers
IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
ch$=""
GOTO SomeAnswers
MoreAnswers:
IF okp<>1 THEN RETURN
IF i$="" THEN ch$="":GOTO Answers
t$=i$:IF LEN(t$)>80 THEN t$=LEFT$(t$,78)+r$
RETURN
Menus:
IF okp<>1 THEN RETURN
EntTime$=TIME$:a$=r$+r$+"Date:"+DATE$+" Time:"+TIME$+r$:GOSUB Modem
Veru=VAL(Veru$):IF Veru>1 THEN UserSelect1
MenuChoices1:
file$="df1:PubMenu":GOSUB SeqRead
UserSelect1:
10 REM
IF okp<>1 AND ellen=0 THEN RETURN
IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL
GOSUB CheckConTime:IF okp<>1 AND ellen=0THEN RETURN
IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL
MenS$="":a$=r$+"Main (? for menu):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,LEN(t$)-1))
IF LEN(MenS$)>3 THEN MenS$=LEFT$(MenS$,3)
IF MenS$="C" THEN Chat
IF MenS$="G" AND ellen=0 OR MenS$="BYE" AND ellen=0 OR MenS$="OFF" AND ellen=0 THEN RETURN
IF MenS$="G" OR MenS$="BYE" OR MenS$="OFF" THEN CHAIN "df1:BBS1",10,ALL
IF MenS$="H" THEN file$="df1:Help":GOSUB SeqRead:GOTO MenuChoices1
IF MenS$="A" THEN file$="df1:Ann.":GOSUB SeqRead:GOTO UserSelect1
IF MenS$="N" THEN NewsMenu
IF MenS$="M" THEN ellen=1:CHAIN "df0:mail",,ALL
IF MenS$="F" THEN ellen=1:CHAIN "df0:sysmail",,ALL
IF MenS$="T" THEN NowTime
IF MenS$="Y" THEN Status
IF MenS$="?" THEN MenuChoices1
IF MenS$="V" THEN ValidMenu
a$=r$+"No such command."+r$:GOSUB Modem:GOTO UserSelect1
SeqRead:
ERASE ABCS$:DIM ABCS$(185)
a$=r$+r$+"[> K Quits <]"+r$+r$:GOSUB Modem
OPEN "I", #3, file$
ReadSeq:
j=0:L=0:k=0:Countl=0
WHILE NOT EOF(3)
x=FRE(0):j=j+1
LINE INPUT#3,ABCS$(j):ABCS$(j)=ABCS$(j)+r$
WEND
CLOSE#3:k=j:L=0:Detect=0
WHILE L<k
L=L+1:a$=ABCS$(L):GOSUB Modem
CheckSeq:
t$="":t=0:i$="":ch$="":IF rings=0 THEN SomeCheckSeq
WHILE LOC(1)<>0
ch$=INPUT$(1,1):equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs)
i$=i$+ch$:equivs=0:a$=ch$:GOSUB Modem
WEND
IF i$<>"" THEN MoreCheckSeq
SomeCheckSeq:
ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem
OtherCheckSeq:
IF Detect=1 GOTO MoreCheckSeq
Countl=Countl+1:IF Countl=24 THEN a$=r$+"More (y,n,c)?":GOSUB A1
IF Countl=24 THEN MenS$=UCASE$(LEFT$(t$,1)):IF MenS$="N" THEN L=k+1
IF Countl=24 AND MenS$="Y" THEN Countl=0
IF Countl=24 AND MenS$="C" THEN Detect=1
IF Countl=24 AND Detect<>1 THEN Countl=0
MoreCheckSeq:
IF i$=CHR$(75) OR i$=CHR$(107) THEN L=k+1
WEND
ERASE ABCS$:DIM ABCS$(185):RETURN
A1:
GOSUB Modem:GOSUB Answers:RETURN
ValidMenu:
20 IF okp<>1 AND ellen=0 THEN RETURN
IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL
GOSUB CheckConTime:IF okp<>1 AND ellen=0THEN RETURN
IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL
MenS$="":a$=r$+"Valid (? for menu):":GOSUB A1:MenS$=UCASE$(t$)
IF LEN(MenS$)>=3 THEN MenS$=LEFT$(MenS$,2) :ELSE MenS$=LEFT$(MenS$,1)
Meni=VAL(MenS$):IF Meni>=1 AND Meni<=9 THEN MenS$=LEFT$(MenS$,1):ellen=1:zl$="FmT"+MenS$:CHAIN "df0:Boards",,ALL
IF MenS$="G" AND ellen=0 OR MenS$="OFF" AND ellen=0 OR MenS$="BYE" AND ellen=0 THEN RETURN
IF MenS$="G" OR MenS$="OFF" OR MenS$="BYE" THEN CHAIN "df1:BBS1",10,ALL
IF MenS$="?" THEN file$="df1:ValidMenu":GOSUB SeqRead:GOTO ValidMenu
IF MenS$="X" THEN UserSelect1
IF Veru$="000" THEN a$=r$+"Not validated for that command.":GOSUB Modem:GOTO ValidMenu
IF MenS$="V" THEN ellen=1:CHAIN "df0:Voting",,ALL
IF MenS$="PW" THEN PassChange
IF MenS$="DL" THEN a$=r$+"Not available yet.":GOSUB Modem:GOTO ValidMenu
IF MenS$="UL" THEN a$=r$+"Not available yet.":GOSUB Modem:GOTO ValidMenu
IF Veru$="014" OR Veru$="021" AND MenS$="S" THEN ellen=1:CHAIN "df0:Sysop",,ALL
a$=r$+"No such Command."+r$:GOSUB Modem:GOTO ValidMenu
NewsMenu:
IF okp<>1 AND ellen=0 THEN RETURN
IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL
GOSUB CheckConTime:IF okp<>1 AND ellen=0 THEN RETURN
IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL
MenS$="":Meni=0:a$=r$+"News (? for menu):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
Meni=VAL(MenS$):IF Meni>=1 AND Meni<=9 THEN file$="df1:G"+MenS$:GOSUB SeqRead:GOTO NewsMenu
IF MenS$="?" THEN file$="df1:NewsMenu":GOSUB SeqRead:GOTO NewsMenu
IF MenS$="X" THEN UserSelect1
a$=r$+"No such command.":GOSUB Modem:GOTO NewsMenu
NowTime:
a$=r$+"Time:"+TIME$:GOSUB Modem:a$=r$+"Time you logged on:"+EntTime$+r$:GOSUB Modem:GOTO UserSelect1
CheckConTime:
Contime$=TIME$:ChEntTime$=RIGHT$(EntTime$,5):Contime$=RIGHT$(Contime$,5):Contime=VAL(Contime$):EntTime=VAL(ChEntTime$)
IF Contime-EntTime>30 AND Veru$="000" THEN okp=0:a$=r$+"Time limit exceeded."+r$:GOSUB Modem:RETURN
IF Contime-EntTime>45 AND Veru$="007" THEN okp=0:a$=r$+"Time limit exceeded."+r$:GOSUB Modem:RETURN
okp=1:RETURN
Status:
a$=r$+"Name:"+Name1$+" "+Name2$+r$+"User No.:"+UserID$+r$+"Password:"+Password$:GOSUB Modem
a$=r$+"Status:"+Veru$+r$:GOSUB Modem:GOTO UserSelect1
PassChange:
a$=r$+"Current Password is:"+r$+Password$:GOSUB Modem
a$=r$+"Change to:"+r$+":":GOSUB A1:NPassWord$=UCASE$(LEFT$(t$,LEN(t$)-1))
IF LEN(NPassWord$)<4 OR LEN(NPassWord$)>9 THEN PassChange
a$=r$+"Old Password:"+Password$+r$+"New Password:"+NPassWord$:GOSUB Modem:a$=r$+"Adopt New Password (Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
IF MenS$="N" THEN a$=r$+"Change Aborted.":GOSUB Modem:GOTO ValidMenu
IF MenS$="Y" THEN Password$=NPassWord$
GOTO ValidMenu
Teflon:
IF teetse=1 THEN a$=r$+"Sorry, not allowed!":GOSUB Modem:okp=1:GOTO Menus
IF teetse=0 THEN ltomr=1:teetse=1:RETURN
RETURN
Chat:
ltomr=0:teetse=0:ch$="":telly=0
a$=r$+" Use / to exit"+r$+r$:GOSUB Modem
WHILE ltomr<1
WHILE LOC(1)<>0
ch$=INPUT$(1,1):equivs=ASC(ch$) AND 127
IF equivs<>1 THEN ch$=CHR$(equivs)
connect=PEEK (&Hbfd*&H1000+&H0):IF connect=40 OR connect=232 THEN okp=0:GOTO UserSelect1
IF ch$=CHR$(8) THEN telly=telly-1
IF ch$=CHR$(10) OR ch$=CHR$(13) THEN ch$=r$:telly=0
i$=i$+ch$:equivs=0:PRINT ch$;:PRINT#1,ch$;:IF ch$="/" THEN ltomr=3
telly=telly+1:IF telly=78 THEN ch$=r$:PRINT ch$:PRINT#1,ch$:telly=0
ch$=""
WEND
i$=INKEY$:IF i$<>"" THEN PRINT #1,i$;:PRINT i$;:telly=0
IF i$="/" THEN ltomr=3
WEND
teetse=1:GOTO UserSelect1